package br.com.jmesystemv1.domain;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name="Pagamento")
@NamedQueries({ 
@NamedQuery(name="JmePagamento.listar", 
query="select pagamento from JmePagamento pagamento"),
@NamedQuery(name="JmePagamento.buscarPorCodigo", 
query="select pagamento from JmePagamento pagamento where PAG_ID =:idPagamento")})
public class JmePagamento {

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name="PAG_ID")
	private Integer idPagamento;
	
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name="PAG_FPG_ID", referencedColumnName="FPG_ID", nullable=false) 
	private JmeFormaPagamento formaPagamento = new JmeFormaPagamento();
	
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name="PAG_RVE_ID", referencedColumnName="RVE_ID", nullable=false)
	private JmeRegistroVendas registroVendas;
	
	@Temporal(value = TemporalType.DATE)
	@Column(name="PAG_DATA_PAGAMENTO")
	private Date dataPagamento;
	
	@Column(name="PAG_VALOR")
	private Double valorPagamento;
	
	@Column(name="PAG_NUMERO_PARCELA")
	private Integer numeroParcelas;
	
	@Column(name="PAG_ACRESCIMO")
	private Double acrescimo;
	
	@Column(name="PAG_DESCONTO")
	private Double desconto;


	public Double getAcrescimo() {
		return acrescimo;
	}

	public void setAcrescimo(Double acrescimo) {
		this.acrescimo = acrescimo;
	}

	public Double getDesconto() {
		return desconto;
	}

	public void setDesconto(Double desconto) {
		this.desconto = desconto;
	}

	public Integer getIdPagamento() {
		return idPagamento;
	}

	public void setIdPagamento(Integer idPagamento) {
		this.idPagamento = idPagamento;
	}

	public JmeFormaPagamento getFormaPagamento() {
		return formaPagamento;
	}

	public void setFormaPagamento(JmeFormaPagamento formaPagamento) {
		this.formaPagamento = formaPagamento;
	}

	public JmeRegistroVendas getRegistroVendas() {
		return registroVendas;
	}

	public void setRegistroVendas(JmeRegistroVendas registroVendas) {
		this.registroVendas = registroVendas;
	}

	public Date getDataPagamento() {
		return dataPagamento;
	}

	public void setDataPagamento(Date dataPagamento) {
		this.dataPagamento = dataPagamento;
	}

	public Double getValorPagamento() {
		return valorPagamento;
	}

	public void setValorPagamento(Double valorPagamento) {
		this.valorPagamento = valorPagamento;
	}

	public Integer getNumeroParcelas() {
		return numeroParcelas;
	}

	public void setNumeroParcelas(Integer numeroParcelas) {
		this.numeroParcelas = numeroParcelas;
	}

	@Override
	public String toString() {
		return "JmePagamento [idPagamento=" + idPagamento + ", formaPagamento="
				+ formaPagamento + ", registroVendas=" + registroVendas
				+ ", dataPagamento=" + dataPagamento + ", valorPagamento="
				+ valorPagamento + ", numeroParcelas=" + numeroParcelas + "]";
	}
	
	
	
	
	
}
